iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0

今天我們要介紹學科的第二章節 - 程式設計,下面是一些相關重點整理,如果有寫錯或是有任何問題,歡迎留言或來信告知,我的信箱是 nickchen1998@gmail.com

軟體開發生命週期

軟體開發生命週期(Software Development Life Cycle, SDLC)是指軟體從構想到實施和維護的整個過程,涵蓋了軟體開發的各個階段。這個過程有助於確保軟體的品質、效率和可維護性。

軟體開發的主要階段

  1. 需求分析(Requirements Analysis)

    • 這是軟體開發的第一步,主要目的是了解客戶的需求,並將其轉化為明確的系統規格。
    • 此階段通常會與客戶和利益相關者進行大量溝通,確保需求的完整性和正確性。
  2. 系統設計(System Design)

    • 在需求分析完成後,進入系統設計階段。設計師將根據需求,定義軟體的架構和模組。
    • 設計階段通常包括高階設計(High-level Design)和詳細設計(Detailed Design),描述系統的各個組件及其相互關係。
  3. 程式撰寫(Coding / Implementation)

    • 根據系統設計,開發人員使用程式語言撰寫程式碼,實現設計中的功能。
    • 這個階段需要開發人員嚴格遵守編碼規範,並定期進行單元測試,以確保功能實現的正確性。
  4. 測試(Testing)

    • 程式撰寫完成後,進入測試階段。此階段的目的是檢驗軟體是否符合需求,並找出潛在的錯誤。
    • 測試可以包括單元測試、整合測試、系統測試和接受測試,確保軟體的各個部分能夠協同工作,且滿足最終用戶的需求。
  5. 部署(Deployment)

    • 當軟體通過測試,並獲得客戶確認後,進行軟體的部署。這包括將軟體安裝到客戶的生產環境中,並進行必要的配置。
    • 在部署過程中,需確保軟體在目標環境中能夠正常運行,並符合客戶的預期。
  6. 維護(Maintenance)

    • 軟體部署後,進入維護階段。這個階段包括修復運行過程中發現的錯誤,進行功能升級和優化。
    • 維護是軟體生命週期中最長的階段,需要持續的監控和改進,以確保軟體的穩定性和可用性。

軟體開發生命週期模型

  1. 瀑布模型(Waterfall Model)

    • 瀑布模型是一種線性順序的開發流程,階段性依序進行,每個階段結束後才進入下一階段。
    • 適合需求明確且變更較少的項目。
  2. 敏捷開發(Agile Development)

    • 敏捷開發是一種迭代式的開發方法,強調小批量、快速交付,並能靈活應對需求變更。
    • 每個迭代週期稱為「衝刺」(Sprint),每次衝刺都會產出可運行的軟體版本。
  3. 螺旋模型(Spiral Model)

    • 螺旋模型將軟體開發過程分為多個迭代,每次迭代都包括計劃、風險分析、工程開發和評估等活動,適合大型和高風險的項目。

抱歉,讓我們重新整理格式。這是正確的「流程圖與虛擬碼」的 Markdown 版本,包括虛擬碼範例:

流程圖與虛擬碼

流程圖

流程圖(Flowchart)是一種用圖形表示程式邏輯和工作流程的工具。它用來顯示程式中各個步驟之間的順序和關係,幫助程式設計師或分析師直觀地理解系統的運作邏輯。

常見的流程圖符號:

  • 長方形:表示處理步驟,通常代表程式執行的動作或操作。
  • 菱形:表示決策點,用於進行邏輯判斷,通常有「是/否」兩條路徑。
  • 圓角矩形:表示起點或終點,用於表示程式的開始或結束。
  • 箭頭:表示流程方向,顯示程式執行的順序。

流程圖幫助設計者清晰地展示程式的執行流程,使後續的程式撰寫工作更具條理。

虛擬碼

虛擬碼(Pseudo Code)是一種以自然語言和類程式語言的混合形式來描述程式邏輯的工具。虛擬碼的目的是讓程式設計師在不受語法限制的情況下,清楚表達程式設計的邏輯與流程。

虛擬碼的特點:

  • 語法簡單:不受具體程式語言的限制,類似於書面敘述。
  • 易於理解:使用者可以專注於程式邏輯,而不必關心具體語法細節。
  • 轉換性強:虛擬碼能夠輕鬆轉換為任何程式語言的實際程式碼。

虛擬碼範例

  1. 求兩個數的和:
Start
    Input number1
    Input number2
    sum = number1 + number2
    Output sum
End
  1. 檢查一個數是否為偶數:
Start
    Input number
    If number mod 2 = 0 Then
        Output "This is an even number"
    Else
        Output "This is an odd number"
    End If
End
  1. 求 1 到 100 的總和:
Start
    sum = 0
    For i = 1 to 100
        sum = sum + i
    End For
    Output sum
End

系統分析與設計工具

在軟體開發過程中,系統分析與設計工具能夠幫助開發人員更好地理解、設計和實現系統的邏輯與結構。這些工具通常用於描述系統的流程、資料傳遞以及模組之間的關聯,提升系統的可視化與可維護性。

1. 流程圖(Flowchart)

  • 流程圖是一種圖形化工具,用來表示系統中各個步驟的順序和邏輯關係。
  • 流程圖使用標準化符號(如長方形表示處理步驟、菱形表示決策點),幫助設計人員明確地描述系統的運行邏輯。
  • 常用於早期的需求分析和系統設計階段,是系統設計中非常常見的工具。

2. 資料流程圖(Data Flow Diagram, DFD)

  • 資料流程圖用於表示資料在系統中傳遞的過程,以及各個處理模組之間的資料流動。
  • DFD 由多個元素組成,包括資料來源、資料存儲、處理流程等。
  • 常用於系統分析階段,幫助理解系統的功能及其資料處理方式,並用來描述輸入、處理和輸出之間的關係。

3. 結構圖(Structure Chart)

  • 結構圖用來表示系統中模組之間的層次結構及相互關係。
  • 它能夠幫助設計人員將複雜的系統分解為多個模組,並確定模組之間的功能依賴。
  • 結構圖有助於模組化設計,提升系統的可維護性和可擴展性。

4. 決策表(Decision Table)

  • 決策表是一種列出可能的條件與動作的工具,用來表示系統中不同條件下所需採取的對應動作。
  • 它適合於複雜的邏輯條件處理,幫助系統設計人員確保各種邏輯情況都能得到妥善處理。

以下是從檔案中節錄的三道程式碼題目及其詳解:

Visual Basic 程式例題

1. Visual Basic.NET 程式範例

問題:下列 Visual Basic.NET 程式,其執行結果為何?

Dim A as Integer = 5
Dim B as Integer = 10
Dim C as Integer = A + B
Console.WriteLine(C)

選項

  1. 10
  2. 15
  3. 20
  4. 25

詳解
這段程式碼宣告了兩個整數變數 AB,分別賦值為 5 和 10。接著它們相加並將結果存入變數 C,然後輸出變數 C 的值。

  • A + B = 5 + 10 = 15
    因此,輸出結果為 15

答案:2. 15


2. C 程式範例

問題:下列 C 程式,其執行結果為何?

int x = 3;
int y = 4;
printf("%d", x + y * 2);

選項

  1. 11
  2. 10
  3. 8
  4. 14

詳解
根據 C 語言的運算優先級規則,乘法的優先級高於加法。首先進行乘法運算 y * 2 = 4 * 2 = 8,接著再加上 x 的值 3

  • x + (y * 2) = 3 + 8 = 11
    因此,輸出結果為 11

答案:1. 11


3. Visual Basic.NET 字串處理範例

問題:若字串變數 A="ABCDEF",字串變數 B="WXYZ",則 Mid(A,3,2)+Mid(B,2,2) 的結果為何?

Dim A as String = "ABCDEF"
Dim B as String = "WXYZ"
Dim result as String = Mid(A, 3, 2) + Mid(B, 2, 2)
Console.WriteLine(result)

選項

  1. ABCWX
  2. DEFYZ
  3. CDXY
  4. DEYZ

詳解
Mid(A, 3, 2) 代表從字串 A 的第 3 個字元開始擷取 2 個字元,因此取到的子字串是 CD
Mid(B, 2, 2) 代表從字串 B 的第 2 個字元開始擷取 2 個字元,因此取到的子字串是 XY
將兩個子字串相加,結果為 CDXY

答案:3. CDXY

這三道題目涵蓋了基本的運算、控制結構和字串處理等常見的程式設計概念。如果還有其他需求,請隨時告訴我!


上一篇
Day 02 - 學科第一章節 - 電腦概論
下一篇
Day 04 - 職業安全衛生共同科目
系列文
C++ 程式之旅 - 電腦軟體設計丙級10
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言